#ifndef SECURITYWIDGET_H
#define SECURITYWIDGET_H

#include <QWidget>
#include "mytypes.h"
#include <QStandardItemModel>
#include <QGridLayout>
#include <QTableView>
#include <QPlainTextEdit>
#include <QTabWidget>
#include <QVBoxLayout>
#include <QSpacerItem>
#include <QVector>
#include <QList>
namespace Ui {
class SecurityWidget;
}

class SecurityWidget : public QWidget
{
    Q_OBJECT

public:

    static QVector<QPair<Yzty::MODECODE,Yzty::ITEMCODE>> ShowTools;
    static QVector<QSet<int>> ToolMapItem;       //执行的功能对应的item编号

    explicit SecurityWidget(QWidget *parent = nullptr);
    ~SecurityWidget();
    void SetCurWidget(int i);
    void Init_Config(QMap<int,QVector<QPair<QString,QStringList>>>& pstruct);

    void UpdateData(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);

    void ClearModel(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);
    void Init_Ui();

public slots:
    void doMouseTrackTip(QModelIndex index);

private:

    void UpdateSysShareDirInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);           //系统共享安全

    void UpdateNetLoginInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);              //系远程登陆检查

    void UpdateSysUpdateInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);             //系统升级文件

    void UpdateNetPortInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);               //系统开放端口

    void UpdateAccountSecInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);            //账户安全配置

    void UpdatePwdConfigInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);             //密码策略配置

    void UpdateNetConfigFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);                  //网络安全配置

    void UpdateSecAuditInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);              //安全审计配置

    void UpdateSudoConfigInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);            //sudo策略配置

    void UpdateNetFireWallInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);           //防火墙配置

    void UpdateSysProcessInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);            //系统进程信息

    void UpdateSysServerInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);             //系统服务信息

    void UpdateSysKernelInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);             //系统加载内核

    void UpdateEmailInforFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);                 //邮件客户端

    void UpdateVirMachineFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);                 //虚拟机安装

    void UpdateDefendSoftFromCmd(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);                 //杀毒软件防护

    void UpdateUserLoginInfor(Yzty::MODECODE code,Yzty::ITEMCODE tcode=0);                    //获取用户远程登录信息


private:

    Ui::SecurityWidget *ui;
    QVector<QList<QStandardItemModel*>>     _models;
    QVector<QList<QTableView*>>             _views;
    QVector<QList<QPlainTextEdit*>>         _plains;
    QList<QTabWidget*>                      _tabws;
    QVector<QVector<QStringList>>           _model_labels;
};

#endif // SECURITYWIDGET_H
